type DropChar<S extends string, C extends string> = S extends `${infer R}${infer P}` ? R extends C ? DropChar<P, C> : `${R}${DropChar<P, C>}` : S